package main

import "fmt"

func main() {
	println("start main")
	ch := make(chan int)

	go func() {
		for i := 0; i < 10; i++ {
			//time.Sleep(2 *time.Second)
			fmt.Println("ch开始写前", i)
			ch <- i
			fmt.Println("ch开始写后", i)
		}
		// 如果不关闭channel,会引发panic
		close(ch)

	}()

	for v := range ch {
		fmt.Println("开始读", v)
	}

	println("end main")
}
//func main() {
//	println("start main")
//
//
//	ch := make(chan int)
//
//
//	//ch <- 1
//	//go func() {
//	//	ch <- 1
//	//}()
//
//
//
//
//
//	for i := 0; i < 1; i++ {
//		fmt.Println("ch开始写前", i)
//		ch <- i
//		fmt.Println("ch开始写后", i)
//	}
//
//	go func() {
//		for v := range ch {
//			fmt.Println("go 开始读", v)
//		}
//	}()
//	//
//	//
//	//time.Sleep(2 * time.Second)
//
//	//fmt.Println("go 开始读", <-ch)
//
//
//
//	println("end main")
//}

//func main() {
//	a := 1
//	go func(){
//		a = 2
//	}()
//	a = 3
//	fmt.Println("a is ", a)
//
//	time.Sleep(2 * time.Second)
//}